Communications networks are currently undergoing a revolution brought about by the increasing demand for real-time information being delivered to a diversity of locations employing multiple protocols. Many situations require the ability to transfer large amounts of data across geographical boundaries with increasing speed and accuracy. However, with the increasing size and complexity of the data that is currently being transferred, maintaining the speed and accuracy is becoming increasingly difficult.
Early communications networks resembled a hierarchical star topology. All access from remote sites was channeled back to a central location where a mainframe computer resided. Thus, each transfer of data from one remote site to another, or from one remote site to the central location, had to be processed by the central location. This architecture is very processor-intensive and incurs higher bandwidth utilization for each transfer. This was not a major problem in the mid to late 1980s where fewer remote sites were coupled to the central location. Additionally, many of the remote sites were located in close proximity to the central location. Currently, hundreds of thousands of remote sites are positioned in various locations across assorted continents. Legacy networks of the past are currently unable to provide the data transfer speed and accuracy demanded in the marketplace of today.
In response to this exploding demand, data transfer through networks employing distributed processing has allowed larger packets of information to be accurately and quickly distributed across multiple geographic boundaries. Today, many communication sites have the intelligence and capability to communicate with many other sites, regardless of their location. This is typically accomplished on a peer level, rather than through a centralized topology, although a host computer at the central site can be appraised of what transactions take place and can maintain a database from which management reports are generated and operation issues addressed.
Distributed processing currently allows the centralized site to be relieved of many of the processor-intensive data transfer requirements of the past. This is typically accomplished using a data network, which includes a collection of routers and/or switches. The routers and switches allow intelligent passing of information and data files between remote sites. However, increased demand and the sophistication required to route current information and data files, which may employ different protocols, quickly challenged the capabilities of existing routers and switches.
More specifically, network processors, such as the micro-processors employed in routers and switches, must be able to process multiple protocol data units (PDUs) at the same time. Typically, current network processors achieve multi-processing of PDUs by assign an execution thread to each PDU. Each thread executes code, independently of the other threads, to process the PDUs. However, network processors are limited to specific amounts of memory on the chip or in cache memory to hold instructions and/or data. When a thread executing in the network processor needs to access off-chip memory, that thread is delayed until the request is fulfilled. The delay may cause the execution of all the other threads to be suspended until the request is fulfilled or prevent a new thread from being able to start execution. Another problem associated with the delay is the amount of precious thread execution cycles expended to process and determine if the request has been fulfilled. In view of the ever increasing demand for higher transmission speeds these problems are highly undesirable.
Accordingly, what is needed in the art is a system to overcome the deficiencies of the prior art.